package org.springblade.modules.admin.vo.sugar.rescue;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.admin.enums.MaintainPlanContentEnum;
import org.springblade.modules.admin.enums.RescueArriveEnum;
import org.springblade.modules.admin.enums.TaskStatusEnum;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Date 9:14 2024/4/8
 * @Description {
 *   实时监控 救援工单
 * }
 * @Author lsay
 **/
@Data
public class RescueRealTimePlanListVO {

	/**
	 * 工单id
	 */
	private Long planId;

	/**
	 * 工单状态
	 */
	private Integer planStatus;

	/**
	 * 工单状态描述
	 */
	private String planStatusName;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 电梯ID
	 */
	private Long elevatorId;

	/**
	 * 到达时间
	 */
	private Date arriveTime;

	/**
	 * 报警人信息
	 */
	private String alarmInfo;

	/**
	 * 救援要求时间类型 0-默认（30min），1-项目
	 */
	private Integer maximumType;

	/**
	 * 到达预警状态
	 */
	private Integer arrivalWarning;

	/**
	 * 到达预警状态名称
	 */
	private String arrivalWarningName;

	/**
	 * 电梯位置
	 */
	private String elevatorAddress;

	/**
	 * 项目名称
	 */
	private String buildingName;

	/**
	 * 经度
	 */
	private BigDecimal longitude;

	/**
	 * 纬度
	 */
	private BigDecimal latitude;

	/**
	 * 救援人员
	 */
	private String planUser;

	/**
	 * 救援时间要求 0-30分钟以内 1-特殊救援时间要求
	 */
	private Integer rescueTime;

	/**
	 * 白天时间值（min）
	 */
	private Integer rescueDaytime;

	/**
	 * 晚上时间值（min）
	 */
	private Integer rescueNight;

	/**
	 * 到达已用时（min）
	 */
	private Long betweenMin;

	/**
	 * 电梯设备id
	 */
	private String deviceId;

	/**
	 * 状态,-1：未订阅,0：离线,1：在线,2: 通话中
	 */
	private Integer deviceStatus;

	public void setPlanStatus(Integer planStatus) {
		this.planStatus = planStatus;
		if(Func.isNotEmpty(planStatus)){
			this.planStatusName = TaskStatusEnum.getTaskName(MaintainPlanContentEnum.MAINTAIN_KR.getId(),planStatus);
		}
	}

	public void setArrivalWarning(Integer arrivalWarning) {
		this.arrivalWarning = arrivalWarning;
		if(Func.isNotEmpty(arrivalWarning)){
			this.arrivalWarningName = RescueArriveEnum.getName(arrivalWarning);
		}
	}
}
